In any type of image capture system that uses the rolling shutter technique to capture video images there is a fundamental limitation on the maximum exposure time. In rolling shutter image acquisition, the row Reset and Read sequences need to increment through the frame at the same rate in order to preserve a constant integration/exposure time on a row-by-row basis. If the integration time is larger than the frame readout time, the row Reset sequence can wrap around to the first row before the Read sequence for that row has begun, thereby destroying the proper image information.
FIG. 1 is a simplified illustration of the Reset and Read sequence in rolling shutter, where the horizontal axis represents time, and the vertical axis represents the row number.
If the Read sequence is moved to the left on the time axis, integration time is decreased, and increased if moved to the right. However, if the Read sequence is moved too far along to the right of the time axis, such that Tint>Tframe, the Reset sequence repeats prior to reading, destroying the original frame information. This yields an actual integration time of Tint, act=Tint−Tframe as shown in FIG. 2. Also, if the row or column frame size is decreased, Tframe and the maximum integration time will also be decreased. As the column window size, illustrated in FIG. 6, is increased, the slope ΔRow Number/ΔTime decreases, which in turn increases the frame time Tframe. Likewise, decreasing the column window size increases the slope, which decreases the frame time. Therefore, the smaller the window size the smaller the maximum available integration time.
A non-zero vertical blank time Tvblank, consists of a time-delay inserted between the end of the current reset sequence and the initiation of a new reset sequence. This will produce a delay between consecutive frames as shown in FIG. 3.
A non-zero horizontal blank time Thblank, consists of a time-delay inserted between the end of the reset sequence for a particular row number, and the initiation of the reset sequence in the next subsequent row. This will decrease the slope- ΔRow Number/ΔTime as shown in FIG. 4. Increasing either Thblank or Tvblank will increase the frame time Tframe thereby increasing the maximum integration time Tint.
Maximizing the integration time Tint for small window sizes can be quite complicated, since many calculations may be required. However, one solution is to capture one frame at a time or just set the horizontal Thblank and vertical blank Tvblank times to large values. Since many applications require high frame rates, both these solutions are undesirable and not very flexible.
There are a few simple solutions already known in the art, as can be demonstrated from the data sheet for the LM9627 Color CMOS Image Sensor VGA 30 FPS imager, produced by National Semiconductor, which is incorporated herein by reference. In this system, the user must select values for the various time delays and variables which affect the operation of the imager. The simplified description of this method is to insert a vertical blank time Tvblank equal to the integration time Tint before the Reset and Read sequence repeats. This is illustrated in FIG. 5. Because a blank time Tvblank equal to the integration time Tint is inserted between frames, the problem of the Reset “wrap-around” prior to the row Read is completely eliminated and the imaging cycle will get the proper integration time no matter what the window size is.
Usually, the user determines the integration time that is desired and can calculate the additional values, or use a look up table to find the appropriate values and then enter them into the imager's memory.
The equation used to calculate these values is generally understood to be:Tint<[(ΔCol*Tcol)+Trow—blank+Thblank]*ΔRow+TvblankTcol is the period at which a column or columns are read out Trow—blank is defined generally here as the delay time from sampling and latency in the imager, it is related to the time that it would take to do a single read, and other similar delay times. The ΔCol value means the number of columns that a particular window size will use, as the window size varies the ΔCol value will change accordingly. The ΔRow value is the number of rows that a particular window size will use; as the window size varies the ΔRow value will change accordingly. The horizontal blank time, Thblank, and the vertical blank time, Tvblank, are defined values that are entered into the imager and will vary depending on the desired settings the user wishes to accomplish, both in terms of integration time Tint, and other settings. In order for a user to determine an appropriate integration time for a particular window size (ΔCol and ΔRow) the Tvblank, and Thblank times have to be adjusted in order to create the appropriate environment for the image to be captured, optimization is often difficult. As can be seen from the above equation, four variables must be adjusted and optimized for changing window sizes.
These methods are both time consuming and require an intimate knowledge of the imager's functionality. It is apparent from this that an automatic blanking time mode needs to be developed which will allow the user and controlling software to have an simple way to adjust the blanking time or the frame readout time, without performing any calculation or manually entering a number of controlling variables.
Therefore, there is a need for apparatus and a method of automatically setting vertical and horizontal blanking times for a selected integration time and window size.